var ppt=(function(){
    function PPT(el,settings){
       this.el=el;
       this.settings=settings;
       this.items=this.el.find('li.item');
       this.btn=this.el.find('.btn');
       this.total=this.items.length;
       this.pptFlag=true;
       this.timer;
       this.init();
    }
    PPT.prototype={
        init:function(){
            this.initDom();
            this.initEvents();
        },
        initDom:function(){
            var _this=this;
            this.btn.css('zIndex', this.total);
            this.items.parent().css('width',this.total*100+'%');
            this.items.css('width',100/this.total+'%');
            this.items.each(function(i){
                $(this).css({'left':(i-1)*(100/_this.total)+'%','zIndex':_this.total-i-1});
            });
        },
        initEvents:function(){
            var _this=this;
            _this.btn.on('click',function(){
                if($(this).hasClass('next')){
                    _this.switchPPT('next');
                }else if($(this).hasClass('prev')){
                    _this.switchPPT('prev');
                }
            });
            if(_this.settings.autoPlay){
                _this.clock();
                _this.el.hover(function() {
                    clearInterval(_this.timer);
                }, function() {
                    _this.clock();
                });
            }
        },
        switchPPT:function(type){
            if(this.pptFlag){
                this.pptFlag=false;
                var _this=this,
                    leftArr=[],
                    zIndexArr=[];
                _this.items.each(function(i){
                   var item,
                       self=$(this);
                   if(type=="next"){
                       if(self.next().get(0)){
                          item=self.next();
                       }else{
                          item=_this.items.first();
                       }
                   }else if(type=="prev"){
                       if(self.prev().get(0)){
                          item=self.prev();
                       }else{
                          item=_this.items.last();
                       }
                   }
                   leftArr.push(item.css('left'));
                   zIndexArr.push(item.css('zIndex'));
                });
                _this.items.each(function(i){
                   $(this).animate({left:leftArr[i],zIndex:zIndexArr[i]},_this.settings.speed,function(){
                       _this.pptFlag=true;
                   });
                });
            }
        },
        clock:function(){
            var _this=this;
            _this.timer=setInterval(function(){
                $('.next').click();
            },_this.settings.delay);
        }
    }


    function init(el,options){
       var defaults={
           speed:500,
           autoPlay:false,
           delay:2000
       }
       var settings=$.extend({},defaults,options);
       new PPT(el,settings);
    }
    return {
        init
    }
})();